package com.huang.springcloud.service;

import com.huang.springcloud.pojo.Dept;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

//服务降级，在客户端做熔断，将接口的服务暂时改为其他服务
@Component
public class DeptClientServiceFallbackFactory implements FallbackFactory {

    @Override
    public DeptClient create(Throwable throwable) {
        return new DeptClient() {

            @Override
            public Dept getById(int id) {
                return new Dept()
                        .setDeptNo(id)
                        .setDeptName("id =>" + id + "没有对应信息，客户端提供了服务降级信息，该接口暂不提供服务")
                        .setDbSource("没有数据～");
            }

            @Override
            public List<Dept> getList() {
                List<Dept> list = new ArrayList<>();
                Dept dept = new Dept().setDeptNo(null)
                        .setDeptName("id =>" + null + "没有对应信息，客户端提供了服务降级信息，该接口暂不提供服务")
                        .setDbSource("没有数据～");
                list.add(dept);
                return list;
            }

            @Override
            public int addDept(Dept dept) {
                return 0;
            }
        };
    }
}
